import request from '@/utils/request'
import { AES_Decrypt } from "../../utils/crypto.js"

const CLIENT_ID = "a163727efee147dda77351d363592473";
const CLIENT_SECRET = "a4ae7b1b754f1f004e3f91322b064563";

// 用户登录
export function updateUserPwd(params) {
  const data = {
    "client_id": CLIENT_ID,
    "client_secret": CLIENT_SECRET,
    "grant_type": "password",
    "redirect_uri": "http://www.sciener.cn",
	...params
  }
  return request({
    url: '/oauth2/token',
    method: 'POST',
    params: data
  })
}

export function initialize(params) {
  const data = {
    "client_id": CLIENT_ID,
    "accessToken": AES_Decrypt(wx.getStorageSync('access_token')),
    "date": Date.now(),
    ...params
  }
  return request({
    url: 'https://cnapi.ttlock.com/v3/lock/initialize',
    method: 'POST',
    params: data
  })
}

export function deleteLock(params) {
  const data = {
    "client_id": CLIENT_ID,
    // "accessToken": AES_Decrypt(wx.getStorageSync('access_token')),
    "date": Date.now(),
    ...params
  }
  return request({
    url: 'https://cnapi.ttlock.com/v3/lock/delete',
    method: 'POST',
    params: data
  })
}

/* 获取我名下关联的设备列表 */
export function associatedDevice() {
	return request({
	  url: '/wechat/device/my-list',
	  method: 'get'
	})
}

/* 远程开锁 */
export function remoteUnlock(lockId) {
	return request({
	  url: `/tai-device/lock/unlock/${lockId}`,
    timeout: 20000,
	  method: 'post'
	})
}

/* 更新门锁电量 */
export function uploadQuantity(lockId, data) {
	return request({
	  url: `/tai-device/lock/upload-quantity/${lockId}`,
	  method: 'post',
	  params: data,
	})
}

/* 添加密码 */
export function addPwd(data) {
	return request({
	  url: `/tai-device/lock/add-pwd`,
	  method: 'post',
	  data,
	})
}

/* 获取随机密码 */
/**
 * 密码类型(keyboardPwdType)：
  1-单次密码（只能使用一次）
  2-永久密码（永不过期）
  3-期限密码（在有效期内可以无限次使用）
  4-删除（删除上一次同一方式添加的密码）
  5-周末循环（每周六周日在设定时间段内有效）
  6-每日循环（每天在设定时间段内有效）
  7-工作日循环（周一至周五在设定时间段内有效）
  8-周一循环（每周一在设定时间段内有效）
  9-周二循环（每周二在设定时间段内有效）
  10-周三循环（每周三在设定时间段内有效）
  11-周四循环（每周四在设定时间段内有效）
  12-周五循环（每周五在设定时间段内有效）
  13-周六循环（每周六在设定时间段内有效）
  14-周日循环（每周日在设定时间段内有效）
 * @param {*} lockId 
 * @param {*} data 
 * @param {*number} data.keyboardPwdType 密码类型
 * @param {*string} data.keyboardPwdName 密码名称
 * @param {string} data.startDate 密码有效期开始时间
 * @param {string} data.endDate 密码有效期结束时间
 * @param {*number} data.lockId 门锁ID
 * @returns 
 */
export function getRandomPwd(lockId, params) {
	return request({
	  url: `/tai-device/lock/get-random-pwd/${lockId}`,
	  method: 'post',
    params,
	})
}


/* 门禁远程开锁 */
export function faceLockUnLock(faceLockId) {
	return request({
	  url: `/tai-device/face_lock/open-door/${faceLockId}`,
	  method: 'post',
	})
}

/* 获取门锁信息 */
export function getLockInfo(lockId) {
	return request({
	  url: `/tai-device/lock/${lockId}`,
	  method: 'get',
	})
}